/**
 * create by young (young2f@outlook.com) on 2023/5/12
 */
'use strict';
const fs = require('fs');
const moment = require('moment');
const _ = require('lodash');
const str = fs.readFileSync('./yue1.json', 'utf8');


function rand(min, max) {
    return Math.ceil(Math.random() * (max - min + 1) + min - 1);
}

function randomNum(min = 0, max = 0, decimal = 0) {
    let min_z = Math.trunc(min); // 最小值的整数部分
    let max_z = Math.trunc(max); // 最大值的整数部分
    // 判断是否存在小数部分，不存在的话为0
    let min_x = isNaN(getDecimalNum(min)) ? 0 : getDecimalNum(min);  // 最小值的小数部分
    let max_x = isNaN(getDecimalNum(max)) ? 0 : getDecimalNum(max);  // 最大值的小数部分

    // 区分有小数和没小数的情况
    if (min_x > 0 || max_x > 0 || decimal > 0) {
        // 整数部分随机数
        let z = parseInt(Math.random() * (max_z - min_z + 1) + min_z, 10);
        // 小数部分随机数
        let x = 0;
        // 小数部分随机数最大位数
        let max_decimal = min_x.toString().length > max_x.toString().length ? min_x.toString().length : max_x.toString().length;
        max_decimal = decimal > max_decimal ? decimal : max_decimal;
        // 判断随机出的整数部分，是否等于最小值或者最大值
        if (z == min_z || z == max_z) {
            if (z == min_z) {
                // 整数部分随机数等于最小值，那么应该从最小值的小数部分开始，到小数位数的最大值随机就可以
                x = parseInt(Math.random() * (Math.pow(10, max_decimal) - min_x) + min_x, 10);
            } else {
                // 整数部分随机数等于最大值，那么应该从0开始，到最大值小数部分
                x = parseInt(Math.random() * (max_x + 1), 10);
            }
        } else {
            // 整数部分在最大最小值区间的，就从0到小数位数的最大值随机就可以
            x = parseInt(Math.random() * (Math.pow(10, max_decimal)), 10);
        }
        return Number(`${z}.${x}`);
    } else {
        return parseInt(Math.random() * (max_z - min_z + 1) + min_z, 10);
    }
}

// 获取数值的小数部分
function getDecimalNum(data) {
    return Number(data.toString().split('.')[1]);
}

const json = JSON.parse(str);
// console.log(json);
const {data, config} = json;
const {color} = config;
const array = data.data;
console.log(array);
const _color = [];

const num = randomNum(0, 14);
_color[0] = color[num];
_color[1] = color[num+1];

config.color = _color;
array.forEach(item => {
    const va = randomNum(6, 10, 2);
    const space = randomNum(1, 2, 2);
    item['预期值'] = va;
    const va2 = va + 0.5;
    item['实际值'] = va2;
});
fs.writeFileSync('./out/yue1.json', JSON.stringify(json));
console.log(data);
